﻿Public Class Utilidades

    Public Function obtenerFechaFormatoSQLServer2008(ByVal fecha As String)
        Dim myFecha As String
        myFecha = fecha.Substring(6, 4) + "-" + fecha.Substring(3, 2) + "-" + fecha.Substring(0, 2)
        Return myFecha
    End Function

    Public Sub confirmarSalirDelFormulario(ByRef e As System.Windows.Forms.FormClosingEventArgs)
        If MessageBox.Show("¿Está seguro que desea salir del Formulario?", "Importante", _
        MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = Windows.Forms.DialogResult.OK Then
            e.Cancel = False
        Else
            e.Cancel = True
        End If
    End Sub

    Public Sub validarKeyPressNumerico(ByRef e As System.Windows.Forms.KeyPressEventArgs)
        If (Asc(e.KeyChar) < Asc("0") Or Asc(e.KeyChar) > Asc("9")) Then
            If Asc(e.KeyChar) <> Asc(vbBack) And Asc(e.KeyChar) <> Asc(vbTab) Then
                MsgBox("Ingrese solamente números", vbCritical, "Importante")
                e.KeyChar = ""
                Exit Sub
            End If
        End If
    End Sub

    Public Function validarRangoDeFechas(ByRef txtDesde As System.Windows.Forms.MaskedTextBox, ByRef txtHasta As System.Windows.Forms.MaskedTextBox) As Boolean
        Dim fechaDesde = txtDesde.Text().Trim()
        Dim fechaHasta = txtHasta.Text().Trim()

        If (Not fechaDesde = "/  /") Then
            If Not IsDate(fechaDesde) Then
                MsgBox("Fecha Desde Inválida", vbOKOnly + vbCritical, "Atención")
                txtDesde.Focus()
                Return False
            End If
        End If

        If Not fechaHasta = "/  /" Then
            If Not IsDate(fechaHasta) Then
                MsgBox("Fecha Hasta Inválida", vbOKOnly + vbCritical, "Atención")
                txtHasta.Focus()
                Return False
            End If
        End If

        If Not fechaHasta = "/  /" Then
            If fechaDesde = "/  /" Then
                MsgBox("Fecha Desde es requerida", vbOKOnly + vbCritical, "Atención")
                txtDesde.Focus()
                Return False
            End If
        End If

        If Not fechaDesde = "/  /" Then
            If fechaHasta = "/  /" Then
                MsgBox("Fecha Hasta es requerida", vbOKOnly + vbCritical, "Atención")
                txtHasta.Focus()
                Return False
            End If
        End If

        If Not (fechaDesde = "/  /" And fechaHasta = "/  /") Then
            If CDate(fechaHasta) < CDate(fechaDesde) Then
                MsgBox("La Fecha Desde es mayor a la Fecha Hasta", vbOKOnly + vbCritical, "Atención")
                txtDesde.Focus()
                Return False
            End If
        End If

        Return True
    End Function

    Public Function validarRangoDeEdades(ByRef txtDesde As System.Windows.Forms.TextBox, ByRef txtHasta As System.Windows.Forms.TextBox) As Boolean
        Dim edadDesde = txtDesde.Text().Trim()
        Dim edadHasta = txtHasta.Text().Trim()

        If Not edadHasta = "" Then
            If edadDesde = "" Then
                MsgBox("Edad Desde es requerida", vbOKOnly + vbCritical, "Atención")
                txtDesde.Focus()
                Return False
            End If
        End If

        If Not edadDesde = "" Then
            If edadHasta = "" Then
                MsgBox("Edad Hasta es requerida", vbOKOnly + vbCritical, "Atención")
                txtHasta.Focus()
                Return False
            End If
        End If

        If Not (edadDesde = "" And edadHasta = "") Then
            If Convert.ToInt32(edadHasta) < Convert.ToInt32(edadDesde) Then
                MsgBox("La Edad Desde es mayor a la Edad Hasta", vbOKOnly + vbCritical, "Atención")
                txtDesde.Focus()
                Return False
            End If
        End If

        Return True
    End Function
End Class
